Interface-Oriented Programming

نویسنده

  • L. Robert Varney
چکیده

The predominant design of object-oriented programming languages today provides insufficient support for interface abstraction and implementation inheritance, a limitation that forces software components to be unnecessarily biased towards particular implementations of other components. This scatters implementation bias across a system and impairs its ability to evolve. In this paper we trace the origin of implementation bias to concrete instantiation dependencies, points in a program text where objects are explicitly or implicitly instantiated in terms of class name references. We then propose interface-oriented programming as a solution, a new approach to language design and software engineering that can eliminate implementation bias by strictly separating interfaces from implementations and decoupling the inheritance mechanism from the implementation binding mechanism. In interface-oriented programming, all program dependencies are expressed through abstract interfaces, and interface clients are bound with implementations using non-deterministic instantiation, a mechanism that automatically selects an implementation of an interface from among a set of alternatives. Partial and incremental implementation of abstract interfaces in terms of other assumed interfaces is allowed, providing a form of mixin-inheritance that separates interface inheritance from implementation inheritance, but with support for constructors, and without the need for explicit composition. Composition of these separately compiled, partial implementations is handled by a new form of program linking called representaton inference. The representation inference mechanism uses type constraints and method constraints to infer compatible compositions of available partial representations for an interface.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Modelsaz: An Object-Oriented Computer-Aided Modeling Environment

Modeling and simulation of processing plants are widely used in industry. Construction of a mathematical model for a plant is a time-consuming and error-prone task. In light of extensive advancements in computer science (both hardware and software), computers are becoming a necessary instrument in industrial activities. Many software tools for modeling, simulation and optimization of proces...

متن کامل

Generative Programming, Interface-Oriented Programming, and Source Transformation Systems

We propose a new interface-oriented approach to generative programming and suggest that source-to-source transformations could play a complementary role in an interfaceoriented programming system.

متن کامل

Modelface: an application programming interface (API) for homology modeling studies using Modeller software

An interactive application, Modelface, was presented for Modeller software based on windows platform. The application is able to run all steps of homology modeling including pdb to fasta generation, running clustal, model building and loop refinement. Other modules of modeler including energy calculation, energy minimization and the ability to make single point mutations in the PDB structures a...

متن کامل

Modelface: an application programming interface (API) for homology modeling studies using Modeller software

An interactive application, Modelface, was presented for Modeller software based on windows platform. The application is able to run all steps of homology modeling including pdb to fasta generation, running clustal, model building and loop refinement. Other modules of modeler including energy calculation, energy minimization and the ability to make single point mutations in the PDB structures a...

متن کامل

An Interface between Object-oriented Systems

The descriptionòbject-oriented' may apply to both programming languages and operating systems. However, creating an interface between an object-oriented programming language and an object-oriented operating system is not necessarily a straightforward task. Chrysalis++ is a C++ interface to the Chrysalis operating system for the BBN Butterry Parallel Processor. The development of Chrysalis++ hig...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004